package com.brainhealth.customer.mapper;

import com.brainhealth.customer.domain.BuriedPointQuery;
import com.brainhealth.customer.domain.SysBuriedPoint;
import com.brainhealth.customer.domain.vo.PayTransformVO;
import com.brainhealth.customer.domain.vo.PayedUserVO;
import com.brainhealth.customer.domain.vo.RemainResultVO;

import java.util.List;

/**
 * 埋点记录Mapper接口
 * 
 * @author ruoyi
 * @date 2023-07-24
 */
public interface SysBuriedPointMapper 
{
    /**
     * 查询埋点记录
     * 
     * @param id 埋点记录主键
     * @return 埋点记录
     */
    public SysBuriedPoint selectSysBuriedPointById(Long id);

    /**
     * 查询埋点记录列表
     * 
     * @param sysBuriedPoint 埋点记录
     * @return 埋点记录集合
     */
    public List<SysBuriedPoint> selectSysBuriedPointList(SysBuriedPoint sysBuriedPoint);

    /**
     * 新增埋点记录
     * 
     * @param sysBuriedPoint 埋点记录
     * @return 结果
     */
    public int insertSysBuriedPoint(SysBuriedPoint sysBuriedPoint);

    /**
     * 获取支付转化结果
     * @param buriedPointQuery
     * @return
     */
    public List<PayTransformVO> getPayTransform(BuriedPointQuery buriedPointQuery);


    /**
     * 查询埋点记录
     * @param buriedPointQuery
     * @return
     */
    public List<SysBuriedPoint> getSysBuriedPointList(BuriedPointQuery buriedPointQuery);

    /**
     * 获取用户量留存信息
     * @param date
     * @return
     */
    public List<RemainResultVO> getRemainResultList(String date);

    /**
     * 获取每日支付用户信息
     * @param buriedPointQuery
     * @return
     */
    public List<PayedUserVO> getPayedUserList(BuriedPointQuery buriedPointQuery);

    /**
     * 修改埋点记录
     * 
     * @param sysBuriedPoint 埋点记录
     * @return 结果
     */
    public int updateSysBuriedPoint(SysBuriedPoint sysBuriedPoint);

    /**
     * 删除埋点记录
     * 
     * @param id 埋点记录主键
     * @return 结果
     */
    public int deleteSysBuriedPointById(Long id);

    /**
     * 批量删除埋点记录
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSysBuriedPointByIds(Long[] ids);
}
